import os
import sys

# 加入Qt的dll路径
os.add_dll_directory("C:/Qt/5.15.2/msvc2019_64/bin")
# 需要先将C++编译好的库的路径加入到python的包检索路径
sys.path.append(f"{os.getcwd()}/../cpp/cmake-build-release/lib")

# 导入测试库
import Pybind11Lib

# 调用简单测试函数
Pybind11Lib.add(1, 2)
Pybind11Lib.add_lambda(2, 3)


# 定义回调函数
def myCallFunc(arg0, arg1, myStr):
    print(f"hello: {myStr}")
    return arg0 * arg1


# 使用回调函数
Pybind11Lib.add_callback(1, 2, "world", myCallFunc)

# 使用类
myClass = Pybind11Lib.MyClass()
v = myClass.add(1, 2)

# 使用指针
v = Pybind11Lib.addPtr(1, 2)
v = Pybind11Lib.usePtr(v)
print(v)

# 使用字符串
v = Pybind11Lib.theStr("test")
print(v)

# 使用依赖的其他库的函数
v = Pybind11Lib.sub(10, 3)
print(v)


# 回调函数使用字符串数组
def myUpdateFunc(arg: list):
    for i in arg:
        print("hello: ", i)


Pybind11Lib.nodeInfoUpdate(["aa", "bb"], myUpdateFunc)
